package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.WhCounterGoods;
import com.ruoyi.system.domain.params.CounterGoodsParams;
import com.ruoyi.system.domain.params.SaveCounterGoodsGoodsParams;
import com.ruoyi.system.domain.vo.CounterGoodsListVo;
import com.ruoyi.system.domain.vo.EditCounterGoodsInfoVo;

/**
 * 货柜货物Service接口
 *
 * @author ruoyi
 * @date 2023-03-07
 */
public interface IWhCounterGoodsService {
    /**
     * 查询货柜货物
     *
     * @param id 货柜货物主键
     * @return 货柜货物
     */
    public WhCounterGoods selectWhCounterGoodsById(Integer id);

    /**
     * 根据id查询编辑详情
     * @param id 货物id
     * @return
     */
    EditCounterGoodsInfoVo selectCounterGoodsEditInfo(Integer id);

    /**
     * 查询货柜货物列表
     *
     * @param whCounterGoods 货柜货物
     * @return 货柜货物集合
     */
    public List<WhCounterGoods> selectWhCounterGoodsList(WhCounterGoods whCounterGoods);

    /**
     * 根据货柜id查询货柜货物列表（带客户信息）
     * @param params
     * @return
     */
    List<CounterGoodsListVo> findWhCounterGoodsList(CounterGoodsParams params);

    /**
     * 新增货柜货物（常规）
     * @param whCounterGoods 货柜货物
     * @return 结果
     */
    public int insertWhCounterGoods(WhCounterGoods whCounterGoods);

    /**
     * 添加货柜货物
     * @param params
     * @return
     */
    int saveWhCounterGoods(SaveCounterGoodsGoodsParams params);

    /**
     * 修改货柜货物
     * @param params 货柜货物
     * @return 结果
     */
    int updateWhCounterGoods(SaveCounterGoodsGoodsParams params);

    /**
     * 批量删除货柜货物
     *
     * @param ids 需要删除的货柜货物主键集合
     * @return 结果
     */
    public int deleteWhCounterGoodsByIds(Integer[] ids);

    /**
     * 删除货柜货物信息
     *
     * @param id 货柜货物主键
     * @return 结果
     */
    public int deleteWhCounterGoodsById(Integer id);
}
